package vue.stage;

import java.awt.FlowLayout;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.TitledBorder;

import configuration.MessageAppli;

import metier.Stage;
import ctr.commun.CommunGest;
import ctr.stage.GestSuppStage;

public class JPanSuppStage extends JPanel {

	private static final long serialVersionUID = -8258905260255616984L;
	private JComboBox jComboBox;
	private JPanSuppStage jPanSuppStage;
	private Stage stage;

	public JPanSuppStage(String titre) {
		init(titre);
	}
	
	public JPanSuppStage(String titre, JPanSuppStage jPanSuppStage, Stage stage) {
		this.jPanSuppStage= jPanSuppStage; 
		this.jComboBox = jPanSuppStage.getjComboBox();
		this.stage = stage;
		
		init(titre);
	}
	
	private void init(String titre){
		JLabel lbl_supprimer;
		CommunGest communGest = new CommunGest();
		// Recuperation de la liste des stages.
		ArrayList<Stage> lStage = communGest.getListeStage();
		if ( lStage != null && !lStage.isEmpty()){
			
			// On initialise qu'a l'implementation
			if ( jPanSuppStage == null ){
				// Recuperation et creation de la comboBox de liste des stages.
				
				jComboBox = new JComboBox(communGest.getListeStage().toArray());
				// je selectionne le premier stage
				this.jComboBox.setSelectedItem(stage);
				// en cas de changment de ma comboBox je selectionnne un nouveau stage
				jComboBox.addItemListener(new GestSuppStage(this));
			}
	
			JButton jButtonSupp = new JButton("Supprimer");
			// On passe au listener l'instance de l'objet pour qu'il accede à la
			// comboxBox.
			jButtonSupp.addActionListener(new GestSuppStage(this));
	
			// Ajout des differents composants.
			this.setBorder(new TitledBorder(titre));
			this.setLayout(new FlowLayout());
			this.add(jComboBox);
	
			if ( stage != null){
				lbl_supprimer = new JLabel("Vous avez sélectionnez le stage : "
					+ stage.getLibelleStage());
				this.add(lbl_supprimer);
			}
			
	
			this.add(jButtonSupp);
		}else{
			JOptionPane.showMessageDialog(this, MessageAppli.MSG_STAGE_AUCUN_STAGE + " Suppression de stage impossible.", MessageAppli.MSG_TITRE_INFO, JOptionPane.INFORMATION_MESSAGE);
		}
	}

	public JComboBox getjComboBox() {
		return jComboBox;
	}

}
